﻿using System.Collections;
using System.Collections.Generic;
using System.Security.Cryptography;
using UnityEngine;

/// <summary>
/// 1、当炮弹出现时，自动播放射击特效和射击声音
/// 2、当炮弹飞行时，自动播放飞行特效
/// 3、当炮弹碰撞到其他游戏对象时，自动播放爆炸特效
/// </summary>
public class Bullet : MonoBehaviour
{
    //射击特效预制体游戏对象
    public GameObject pFlash;

    //飞行特效预制体游戏对象
    public GameObject pTrail;

    //炮弹爆炸特效预制体游戏对象
    public GameObject pBlastWave;

    // Start is called before the first frame update
    void Start()
    {
        if (pFlash!=null)
        {
            //实例化游戏对象
            pFlash = Instantiate(pFlash, transform.position, transform.rotation);
            //销毁pFlash游戏对象
            Destroy(pFlash,1f);
        }

        if (pTrail!=null)
        {
            //实例化游戏对象
            pTrail = Instantiate(pTrail, transform.position, transform.rotation);
            //为炮弹飞行效果对象指定父级游戏对象
            pTrail.transform.parent = transform;
        }
    }

    private void Update()
    {
        RaycastHit hit;
        //获得炮弹运行的方向的单位向量
        Vector3 dir = transform.GetComponent<Rigidbody>().velocity.normalized;
        if (pBlastWave!=null && Physics.SphereCast(transform.position,0.15f, dir,out hit,0.2f))
        {
            //创建炮弹爆炸特效的游戏对象（自动播放爆炸效果）
            pBlastWave = Instantiate(pBlastWave, transform.position, transform.rotation);

            //销毁炮弹爆炸效果对象
            Destroy(pBlastWave, 1.6f);

            //销毁炮弹对象
            Destroy(gameObject);
        }

        
    }
}
